home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 126-150 / disk_136 / bison / vmsgetargs.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  1KB  |  78 lines

  1. /*
  2.  *    VMS version of getargs(): Uses DCL command parsing
  3.  *        (argc and argv are ignored)
  4.  */
  5. getargs(argc,argv)
  6.      int argc;
  7.      char *argv[];
  8. {
  9.   register char *cp;
  10.   static char Input_File[256];
  11.  
  12.   verboseflag = 0;
  13.   definesflag = 0;
  14.   /*
  15.    *    Check for /VERBOSE qualifier
  16.    */
  17.   if (cli_present("BISON$VERBOSE")) verboseflag = 1;
  18.   /*
  19.    *    Check for /DEFINES qualifier
  20.    */
  21.   if (cli_present("BISON$DEFINES")) definesflag = 1;
  22.   /*
  23.    *    Check for /FIXED_OUTFILES qualifier
  24.    */
  25.   if (cli_present("BISON$FIXED_OUTFILES")) fixed_outfiles = 1;
  26.   /*
  27.    *    Get the filename
  28.    */
  29.   cli_get_value("BISON$INFILE", Input_File, sizeof(Input_File));
  30.   /*
  31.    *    Lowercaseify the input filename
  32.    */
  33.   cp = Input_File;
  34.   while(*cp) {
  35.     if (isupper(*cp)) *cp = tolower(*cp);
  36.     cp++;
  37.   }
  38.   infile = Input_File;
  39. }
  40.  
  41. /************        DCL PARSING ROUTINES        **********/
  42.  
  43. /*
  44.  *    See if "NAME" is present
  45.  */
  46. int
  47. cli_present(Name)
  48.      char *Name;
  49. {
  50.   struct {int Size; char *Ptr;} Descr;
  51.  
  52.   Descr.Ptr = Name;
  53.   Descr.Size = strlen(Name);
  54.   return((cli$present(&Descr) & 1) ? 1 : 0);
  55. }
  56.  
  57. /*
  58.  *    Get value of "NAME"
  59.  */
  60. int
  61. cli_get_value(Name,Buffer,Size)
  62.      char *Name;
  63.      char *Buffer;
  64. {
  65.   struct {int Size; char *Ptr;} Descr1,Descr2;
  66.  
  67.   Descr1.Ptr = Name;
  68.   Descr1.Size = strlen(Name);
  69.   Descr2.Ptr = Buffer;
  70.   Descr2.Size = Size-1;
  71.   if (cli$get_value(&Descr1,&Descr2,&Descr2.Size) & 1) {
  72.     Buffer[Descr2.Size] = 0;
  73.     return(1);
  74.   }
  75.   return(0);
  76. }
  77.  
  78.